iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
自我挑戰組

一個月的後端學習之旅系列 第 5

【DAY5】string介紹、屬性、method

  • 分享至 

  • xImage
  •  

string

  • 由字母或數字串接而成

  • 兩個 string 之間會用 + 串接 concatenation concat

  • 兩個 string 之間不能做 - 、 * 、 / 運算,會出現 NaN (Not a Number)

    如果把 String 與 Number 相乘會得出 NaN (乘法只會發生在數值之間)

    let first_name = "Phoebe";
    
    console.log(first_name * 5);
    
  • String 與 Number 之間,若是做 + 運算,則會變成 String 與 String 之間的串接

    let x = 10; //x data type is number
    let y = "10"; //y data type is string
    
    console.log(x + x); // ->20
    console.log(y + y); // ->1010
    

    補充:程式碼讀取方式 -> 從上到下讀取,從左到右讀取

    let n1 = 20;
    let n2 = 30;
    let name = "Phoebe";
    let n3 = 10;
    let n4 = 15;
    
    console.log(n1 + n2 + name); // ->50Phoebe
    
    console.log(n1 + n2 + name + n3 + n4);
    //先變成50Phoebe(string),加上n3後->50Phoebe10,再加上n4後->50Phoebe1015
    
  • \n 可以換行

    console.log("Phoebe\nLee");
    

Attributes and Methods

String_mdn

Attributes (Properties)

  • length return String 的長度

    let str = "Phoebe";
    console.log(str.length); // -> 6
    
    let str = "";
    console.log(str.length); //empty string -> 0
    
  • [n] return index 第 n 項的字,索引 index (編號) 從 0 開始計算

    let str = "Phoebe";
    console.log(str[0]); -> P
    
    //str長度為6,str最後一個文字的index會是5
    //對於任一個str,若str長度為x,則最後一個文字的index會是x - 1
    
    //若要取e,以下兩種方法
    console.log(str[5]);
    console.log(str[str.length - 1]);
    
    //沒有寫正確的值,會得到undefined,-1也是undefined
    console.log(str[6]);  // -> undefined
    

Methods

  • slice(indexStart [, indexEnd])

    • slice 提取字符串的一部分並將其作為新 String 返回,而不修改原始字符串

      let str = "Phoebe"; // o index -> 2
      console.log(str.slice(2)); // -> oebe
      
    • indexStart 是 inclusive

    • indexEnd 是 optional exclusive

      let str = "Phoebe"; // o index -> 2
      //indexEnd is exclusive
      console.log(str.slice(0, 4)); // -> Phoe
      
  • indexOf(substring) return substring(子字串) 的 index 位置。若找不到 substring,則 return -1

    let str = "Phoebe";
    console.log(str.indexOf("b")); // -> 4
    console.log(str.indexOf("ebe")); // -> 3
    console.log(str.indexOf("k")); // -> -1
    
  • toUpperCase() return 轉換為大寫的 String。 此方法不會影響 String 本身

  • toLowerCase() return 轉換為小寫的 String。 此方法不會影響 String 本身

    要強制轉換的方法

    let str = "Phoebe";
    //reassignment
    str = str.LowerCase();
    console.log(str); // -> phoebe
    
  • split(pattern) 接受一個 pattern 並通過搜索將一個字符串分成一個有序的 array,然後 return 該 array

    Pattern 可以是 regular expression

    let sentence = "Today is a good day";
    
    let result = sentence.split(" ");
    console.log(result); // -> 'Today', 'is', 'a', 'good', 'day'
    
    let result2 = sentence.split("o");
    console.log(result2); // -> 'T', 'day is a g', '', 'd day'
    
  • startsWith(s) 確定 String 是否以指定字串 s 開頭,根據需要返回 truefalse

  • endsWith(s)startsWith()相同,但確認結尾

  • includes(str) return true 如果 String 內部包含 str

  • charCodeAt(n) 返回一個介於 0 和 65535 之間的整數,表示給定索引處 n 的 UTF-16 code unit

    通常用在 project、處理文字、做比對、交叉運算、資料連接、二進字運算

    let sentence = "Today is a good day";
    
    console.log(sentence.charCodeAt(0));
    // 0 -> T, T 這個字在UTF-16字元編碼裡面,他所相對應的數字編碼是多少 -> 84
    

下一篇會來學習布林、未定義、空值、邏輯運算子、比較運算子。


上一篇
【DAY4】數字運算、method
下一篇
【DAY6】布林、未定義、空值、運算符
系列文
一個月的後端學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言